<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>对象类型</title>
    <script>
        function f1(){
            // 使用js预定义的对象类型Object
            let obj = new Object();
            // 该类型可以拥有任意属性
            // 没有固定的属性,只有通过赋值方法为某个属性赋值了之后
            // 该对象就会拥有该属性
            // 赋值操作,即set方法,对象.属性名 = 属性值
            obj.id = 1;
            obj.name = "admin";
            obj.age = 18;
            // 取值操作,即get方法,直接使用对象.属性名即可
            console.log(obj);
            console.log(obj.id);
            console.log(obj.name);
            console.log(obj.age);
            console.log(obj.a);
            console.log(typeof obj);
        }
        function f2(){
            let user = new User(1,"admin","123456");
            console.log(typeof user);
            console.log(user);
        }

        function User(id,username,password){
            this.id = id;
            this.username = username;
            this.password = password;
        }

        function f3(){
            let user = {"id":1,"username":"admin","password":"123456"};
            console.log(typeof user);
            console.log(user);
        }
        function f4(){
            let user = "{'id':1,'username':'admin','password':'123456'}";
            user = '{"id":1,"username":"admin","password":"123456"}';
            console.log(typeof user);
            // 可以将一个JSON格式的字符串转换成JSON对象
            // 此时的字符串格式必须符合JSON对象格式
            // 有两种方式进行转换

            // 方式一:使用eval实现,该方法属于js通用方法
            // 在解析时,必须使用一对小括号将JSON格式字符串括起来进行转换
            // 该方式安全性较低
            let obj = eval("("+user+")");
            console.log(typeof obj);
            console.log(obj);

            // 方式二:使用JSON.parse()进行转换
            // 该方式对于JSON格式的字符串有限制
            // 此时的JSON格式字符串只支持单引号
            // 该方式安全性较高
            let user2 = '{"id":1,"username":"admin","password":"123456"}';
            let obj2 = JSON.parse(user2);
            console.log(obj2);
        }
    </script>
</head>
<body>
<button onclick="f1()">定义方式一</button><br>
<button onclick="f2()">定义方式二</button><br>
<button onclick="f3()">JSON对象类型</button><br>
<button onclick="f4()">JSON格式字符串转换成对象</button><br>
</body>
</html>